package com.xiaoaitongxue;

import java.util.Comparator;
import java.util.TreeSet;

public class TreeSetStudentDemo2 {
    /**
     * 案例需求 存储学生对象 并遍历，创建 TreeSet 集合使用无参构造方法
     * 要求：按照年龄从小到大排序，并按照姓名的字母顺序进行排列
     * 实现
     * 创建学生对象，注意排序规则必须按照要求的主要和次要条件来写
     * 使用 TreeSet 集合存储 自定义对象，无参构造方法使用的是 自然排序对元素进行排列的
     * 自然排序，就是让元素所属于的类事项Comparable的接口，重写 compareTo 方法
     */

    public static void main(String[] args) {
//        创建 TreeSet 集合对象
     TreeSet<Student> ts =   new TreeSet<Student>(new Comparator<Student>() {
             @Override
             public int compare(Student s1, Student s2) {

                 int num = s1.getAge() - s2.getAge();

                 int num2 = num==0? s1.getName().compareTo(s2.getName()):num;
                 return num2;

             }
         });
         
         
//         创建学生对象
        Student s1 = new Student("xishi", 19);
        Student s2 = new Student("xishi", 20);
        Student s3 = new Student("yishi", 22);
        Student s4 = new Student("xishi", 22);
        Student s5 = new Student("xishi", 24);
        Student s6 = new Student("xishi", 23);

        ts.add(s1);
        ts.add(s2);
        ts.add(s3);
        ts.add(s4);
        ts.add(s5);
        ts.add(s6);

        for (Student s:ts){
            System.out.println(s.getName()+","+s.getAge());
        }


    }
}
